// 1.引入核心模块
const http = require("http")
// 引入URL
const url = require("url") // 路径就是字符串
// 创建服务实例
let server = http.createServer()
// 绑定请求事件，只要客户端给我发送请求，就触发回调函数
// 回调函数两个参数，一个是req 请求对象 -> 请求的所有信息都在这个对象里面保存着
// 一个是res 响应对象 -> 响应的所有信息都在这个对象里面保存着
// let myurl = "http://localhost:8080/index?name=zhangsan&password=123"
// 解析路由，把字符串变成对象
// 第一个参数解析的字符串 路径
// 第二个参数可以传true 可以吧传递的参数转化为对象，你就好拿到值了
// console.log(url.parse(myurl, true));
// let username = url.parse(myurl, true).query
// console.log(username.name);
// console.log(username.password);

// 格式化URL，把对象变为字符串
// obj = {
//   protocol: "http:",
//   host: "127.0.0.1:8080",
//   port: "8080",
//   hostname: "127.0.0.1",
//   search:"name=lisi&mima=123"
// };

// urlFormat = url.format(obj);
// console.log(urlFormat);


// 7. 拼接URL
// url.resolve(path1, path2)；
// 拼接是要注意 path1 最后是否是有 '/'
// urlString = url.resolve("/one/two/three/", "four");
// console.log(urlString);//  /one/two/three/four
// urlString = url.resolve("/one/two/three", "four");
// console.log(urlString);//  /one/two/four
// urlString = url.resolve("http://example.com/", "one");
// console.log(urlString);// http://example.com/one
// 如果你需要添加一个路径前面需要加上/  后面不需要加
// 如果你需要取代一个路径前面不需要加上/  后面需要加
// urlString = url.resolve("http://example.com/one", "two");
// console.log(urlString);// http://example.com/two

server.on("request", (req, res) => {
    // console.log(req.url); 
    // res response 响应对象  
    // res.end 结束响应
    // res.write 响应数据
    // res.writeHead()  写响应头
    // res.write("fist")
    // res.write("send")
    // 第一个参数 状态码 可以更改状态码
    // 第二个参数响应头
    res.writeHead(200, {
          // 纯文本  默认值
        //   'content-type': 'text/plain'
        //   'content-type': 'text/html'
          'content-type': 'text/html;charset=utf8'
    })
    res.end("<h2>成功访问</h2>")
})

// 监听一个端口
// 三个参数 1.端口号 数字型
// 2.IP地址 本机 127.0.0.1  可不填，建议不填
// 3.回调函数，服务创建完成会触发
server.listen(8080, () => {
    console.log("我创建了一个HTTP 服务");
})